home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2006 May / PCWMAY06.iso / Software / Freeware / First Page 2006 3.00 / fp2006-final-3.00-setup.exe / {app} / Iscripts / Forms Misc / renkem.izs < prev    next >
Text File  |  2005-09-28  |  8KB  |  337 lines

  1. <!NOWIZARD>
  2.  
  3. <!TITLE>Rank 'em
  4. <!/TITLE>
  5.  
  6. <!DESCRIPTION>Create a survey asking people to rank things, and this script will validate that everything is ranked, and no rankings are repeated. <!/DESCRIPTION> 
  7.  
  8. <!CATEGORY>Forms<!/CATEGORY>
  9.  
  10. <!SCRIPT>
  11. <!-- START OF SCRIPT -->
  12.  
  13. <!-- HOW TO INSTALL RANK 'EM:
  14.  
  15.   1.  Copy code into the HEAD section of document
  16.   2.  Put last coding into the BODY section of document  -->
  17.  
  18. <!-- STEP ONE: Add code into HEAD section of document  -->
  19.  
  20. <HEAD>
  21.  
  22. <SCRIPT LANGUAGE="JavaScript">
  23.  
  24.  
  25. <!-- Original:  Kent Rauch (kent@restekcorp.com) -->
  26. <!-- Web Site:   http://www.restekcorp.com -->
  27. <!-- Begin
  28. function validator() {
  29. // copyright 2002 Kent Rauch
  30.  
  31.  // global declaration
  32.  badrank = false;
  33.  
  34.  rankem(1,4);
  35.  rankem(2,5);
  36.  
  37.  if (!badrank) {
  38.   // this is a "phony submit" for testing purposes
  39.   document.clear();
  40.   document.write("success! it be sweet<br>\n");
  41.  }
  42.  
  43. }
  44.  
  45. // ---------------------------------------------------------
  46. // Validate ranking questions: each value used exactly once.
  47.  
  48. function rankem(question, q_size) {
  49. // copyright 2002 Kent Rauch
  50.  
  51.  var aLert1 = "";
  52.  var aLert2 = "";
  53.  
  54.  // supports up to 26 items to be ranked -- extend this array to increase
  55.  var cal = "a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z";
  56.  cal = cal.split('.');
  57.  
  58.  var a = 0;
  59.  
  60.  var irate = "rink" + question;
  61.  
  62.  eval(irate + " = new Object();");
  63.  
  64.  var myrate = "";
  65.  
  66.  for (var x = 0; x < q_size; ++x) {
  67.   myrate = "q"+question+cal[x];
  68.   eval(irate + "[" + x + "] = document.test_form." + myrate + ".selectedIndex");
  69.   if (eval(irate + "[" + x + "]")) {
  70.    ++a;
  71.    for (var y = 0; y < x; ++y) {
  72.     if (eval(irate + "[" + y + "]") == eval(irate + "[" + x + "]")) {
  73.      aLert1 = "Question "+ question +": please use each ranking only once.\n";
  74.     }
  75.    }
  76.   }
  77.  }
  78.  
  79.  if (a != q_size) {
  80.   aLert2 = "Question " + question +":please rank all items.\n";
  81.  }
  82.  
  83.  var aLert = aLert1 + aLert2;
  84.  
  85.  if (aLert) {
  86.   alert(aLert);
  87.   badrank = true;
  88.  }
  89.  
  90.  
  91. }
  92. //  End -->
  93. </script>
  94.  
  95. </HEAD>
  96.  
  97. <!-- STEP TWO: Add code into BODY section of document  -->
  98.  
  99. <BODY>
  100.  
  101. <p>
  102. You can incorporate this validation feature into any existing form, any number of times.
  103. The form elements must be named consistently so the script can work with them.
  104. <p>
  105. <form name="test_form">
  106. <table border=0>
  107. <tr valign="top"><td>
  108. 1. Ice Cream:<br>
  109. <select name="q1a"> <option><option>1<option>2<option>3<option>4 </select>
  110. vanilla<br>
  111. <select name="q1b"> <option><option>1<option>2<option>3<option>4 </select>
  112. chocolate<br>
  113. <select name="q1c"> <option><option>1<option>2<option>3<option>4 </select>
  114. raspberry<br>
  115. <select name="q1d"> <option><option>1<option>2<option>3<option>4 </select>
  116. mint<br>
  117. </td>
  118. <td width="80"> </td>
  119. <td>
  120. 2. Cars:<br>
  121. <select name="q2a"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  122. Corvette<br>
  123. <select name="q2b"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  124. Mustang<br>
  125. <select name="q2c"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  126. Testarosa<br>
  127. <select name="q2d"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  128. Esprit<br>
  129. <select name="q2e"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  130. RX-7<br>
  131. </td></tr>
  132. <tr><td colspan=2>
  133. <input type="button" onClick="validator();" value=" send survey ">
  134. </td></tr>
  135. </table>
  136.  
  137. </form>
  138.  
  139.  
  140.  
  141. To set up a ranked-list survey question as in the examples above, name the <select>s
  142. as q + the number of the question + a, b, c, etc. In this case, the form elements are named:
  143.     <blockquote>
  144.     q1a<br>
  145.     q1b<br>
  146.     q1c<br>
  147.     q1d<br>
  148.     q2a<br>
  149.     q2b<br>
  150.     q2c<br>
  151.     q2d<br>
  152.     q2e</blockquote>
  153.  
  154. <p>
  155.  
  156. To use the validation, call rankem(a,b) where the parameters are the question number and its length.
  157. In this case, the form handler calls the function twice:
  158.     <blockquote>
  159.     rankem(1,4);<br>
  160.     rankem(2,5);</blockquote>
  161.  
  162. <p>
  163.  
  164. Each call will generate a separate alert if there's anything amiss. The global "badrank" variable
  165. is a status flag so the main form handler knows if it's allowed to submit(). Note that this demo
  166. doesn't acutally do a submit(); instead it just displays a message.
  167.  
  168.  
  169.  
  170. <!-- END OF SCRIPT -->
  171. <!/SCRIPT>
  172.  
  173. <!PREVIEW>
  174. <!-- START OF SCRIPT -->
  175.  
  176.  
  177. <!-- HOW TO INSTALL RANK 'EM:
  178.  
  179.   1.  Copy code into the HEAD section of document
  180.   2.  Put last coding into the BODY section of document  -->
  181.  
  182. <!-- STEP ONE: Add code into HEAD section of document  -->
  183.  
  184. <HEAD>
  185.  
  186. <SCRIPT LANGUAGE="JavaScript">
  187.  
  188.  
  189. <!-- Original:  Kent Rauch (kent@restekcorp.com) -->
  190. <!-- Web Site:   http://www.restekcorp.com -->
  191. <!-- Begin
  192. function validator() {
  193. // copyright 2002 Kent Rauch
  194.  
  195.  // global declaration
  196.  badrank = false;
  197.  
  198.  rankem(1,4);
  199.  rankem(2,5);
  200.  
  201.  if (!badrank) {
  202.   // this is a "phony submit" for testing purposes
  203.   document.clear();
  204.   document.write("success! it be sweet<br>\n");
  205.  }
  206.  
  207. }
  208.  
  209. // ---------------------------------------------------------
  210. // Validate ranking questions: each value used exactly once.
  211.  
  212. function rankem(question, q_size) {
  213. // copyright 2002 Kent Rauch
  214.  
  215.  var aLert1 = "";
  216.  var aLert2 = "";
  217.  
  218.  // supports up to 26 items to be ranked -- extend this array to increase
  219.  var cal = "a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z";
  220.  cal = cal.split('.');
  221.  
  222.  var a = 0;
  223.  
  224.  var irate = "rink" + question;
  225.  
  226.  eval(irate + " = new Object();");
  227.  
  228.  var myrate = "";
  229.  
  230.  for (var x = 0; x < q_size; ++x) {
  231.   myrate = "q"+question+cal[x];
  232.   eval(irate + "[" + x + "] = document.test_form." + myrate + ".selectedIndex");
  233.   if (eval(irate + "[" + x + "]")) {
  234.    ++a;
  235.    for (var y = 0; y < x; ++y) {
  236.     if (eval(irate + "[" + y + "]") == eval(irate + "[" + x + "]")) {
  237.      aLert1 = "Question "+ question +": please use each ranking only once.\n";
  238.     }
  239.    }
  240.   }
  241.  }
  242.  
  243.  if (a != q_size) {
  244.   aLert2 = "Question " + question +":please rank all items.\n";
  245.  }
  246.  
  247.  var aLert = aLert1 + aLert2;
  248.  
  249.  if (aLert) {
  250.   alert(aLert);
  251.   badrank = true;
  252.  }
  253.  
  254.  
  255. }
  256. //  End -->
  257. </script>
  258.  
  259. </HEAD>
  260.  
  261. <!-- STEP TWO: Add code into BODY section of document  -->
  262.  
  263. <BODY>
  264.  
  265. <p>
  266. You can incorporate this validation feature into any existing form, any number of times.
  267. The form elements must be named consistently so the script can work with them.
  268. <p>
  269. <form name="test_form">
  270. <table border=0>
  271. <tr valign="top"><td>
  272. 1. Ice Cream:<br>
  273. <select name="q1a"> <option><option>1<option>2<option>3<option>4 </select>
  274. vanilla<br>
  275. <select name="q1b"> <option><option>1<option>2<option>3<option>4 </select>
  276. chocolate<br>
  277. <select name="q1c"> <option><option>1<option>2<option>3<option>4 </select>
  278. raspberry<br>
  279. <select name="q1d"> <option><option>1<option>2<option>3<option>4 </select>
  280. mint<br>
  281. </td>
  282. <td width="80"> </td>
  283. <td>
  284. 2. Cars:<br>
  285. <select name="q2a"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  286. Corvette<br>
  287. <select name="q2b"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  288. Mustang<br>
  289. <select name="q2c"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  290. Testarosa<br>
  291. <select name="q2d"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  292. Esprit<br>
  293. <select name="q2e"> <option><option>1<option>2<option>3<option>4<option>5 </select>
  294. RX-7<br>
  295. </td></tr>
  296. <tr><td colspan=2>
  297. <input type="button" onClick="validator();" value=" send survey ">
  298. </td></tr>
  299. </table>
  300.  
  301. </form>
  302.  
  303.  
  304.  
  305. To set up a ranked-list survey question as in the examples above, name the <select>s
  306. as q + the number of the question + a, b, c, etc. In this case, the form elements are named:
  307.     <blockquote>
  308.     q1a<br>
  309.     q1b<br>
  310.     q1c<br>
  311.     q1d<br>
  312.     q2a<br>
  313.     q2b<br>
  314.     q2c<br>
  315.     q2d<br>
  316.     q2e</blockquote>
  317.  
  318. <p>
  319.  
  320. To use the validation, call rankem(a,b) where the parameters are the question number and its length.
  321. In this case, the form handler calls the function twice:
  322.     <blockquote>
  323.     rankem(1,4);<br>
  324.     rankem(2,5);</blockquote>
  325.  
  326. <p>
  327.  
  328. Each call will generate a separate alert if there's anything amiss. The global "badrank" variable
  329. is a status flag so the main form handler knows if it's allowed to submit(). Note that this demo
  330. doesn't acutally do a submit(); instead it just displays a message.
  331.  
  332.  
  333. <!-- END OF SCRIPT -->
  334. <!/PREVIEW>
  335.  
  336. <!RELATED>NONE<!/RELATED>
  337.